// 泛型类
class people<t>{
   name: t // t 表示一种类型，但是暂时不知道具体类型，称为参数化类型，在使用该类型时需要指定具体的类型
}

let peo = new people<string>()
peo.name = '姓名'
// peo.name = 22 报错，类型只能是字符串

let peo2 = new people<Number>()
peo2.name = 22
// peo2,name = '222' 报错

interface api<t>{
    url: t,
    fn(param:t):boolean
}

class login implements api<string>{
    url = 'www.baidu.com' // 必须为string
    fn(param:string):boolean{
        return true
    }
}

function fu<t>(param:t):t{
    return param
}
fu<string>('字符串类型')
// fu<string>(false) 错误的